<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        // 要求：输入某年某月某日，统计这一天是这一年的第几天，封装成函数
        // 思路：接收用户输入的 年月日
        //      统计 从 1月1日开始 到 输入年月日的总天数
        //      1.遍历 各个月份 总天数
        //      2.累加 最后一个月的天数
        //      3.如果 是2月 天数和平年闰年相关

        //      用例：
        //      2019 12 10
        //           a.过完的月份，直接 统计总天数 
        //            1 31
        //            2 闰年 29 平年 28
        //            3 ......
        //            4......
        //            .....
        //            11
        //           b.没有过完的月份，直接 拿 当前日 获取 天数
        //            12 10天

        //       具体思路：
        //           a.准备 每个月 的 固定天数，存入数组中
        //           b.判断 当年是否为闰年，从而 设置 2月的天数
        //           c.循环累加 已经过完的 月份的 天数
        //           d.单独 累加 当前月 已经过完的天数

        function countDays(usrYear, usrMonth, usrDay) {
            // 总天数变量
            let totalDays = 0;

            // a.准备 每个月 的 固定天数，存入数组中
            let arrDays = [-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
            //              0   1   2   3   4   5   6   7   8   9  10  11  12
            // b.判断 当年是否为闰年，从而 设置 2月的天数
            if (isRunYear(usrYear)) {
                arrDays[2] = 29;
            }

            // c.循环累加 已经过完的 月份的 天数
            for (let month = 1; month <= usrMonth - 1; month++) {
                totalDays += arrDays[month];
            }

            // d.单独 累加 当前月 已经过完的天数
            totalDays += usrDay;

            // 将 总天数 返回
            return totalDays;
        }

        //判断 是否为 闰年
        function isRunYear(year) {
            if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
                return true;
            }
            return false;
        }

        //--- 调用函数--------------------------------------
        let year = +prompt('请输入年份：');
        let month = +prompt('请输入月份：');
        let day = +prompt('请输入天：');

        let total = countDays(year, month, day);
        alert('总天数为' + total);
    </script>
</head>

<body>

</body>
<!-- author:成都前端_JamesZou -->

</html>